API Testing এবং Automation হল সিস্টেমের কার্যকারিতা পরীক্ষা করার গুরুত্বপূর্ণ অংশ, যেখানে অ্যাপ্লিকেশনের ব্যাকএন্ডে কাজ করা API গুলোর কার্যকারিতা নিশ্চিত করা হয়। API Testing API গুলোর রেসপন্স, ডেটা প্রসেসিং, নিরাপত্তা এবং পারফরম্যান্স চেক করার প্রক্রিয়া, এবং Automation হল সেই প্রক্রিয়াটিকে স্বয়ংক্রিয়ভাবে চালানোর ব্যবস্থা।
Node.js এবং অন্যান্য টুল ব্যবহার করে API Testing এবং Automation এর বাস্তবায়ন করা যায়।
১. API Testing
API Testing হল একটি প্রক্রিয়া যেখানে API রিকোয়েস্ট এবং রেসপন্স যাচাই করা হয়, যা নিশ্চিত করে API সঠিকভাবে কাজ করছে, ডাটা সঠিকভাবে ট্রান্সফার হচ্ছে এবং API যথাযথভাবে প্রতিক্রিয়া দিচ্ছে।
API Testing এর ধরন:
- Functional Testing: API রিকোয়েস্ট এবং রেসপন্সের কার্যকারিতা পরীক্ষা করা।
- Load Testing: API এর কর্মক্ষমতা পরীক্ষা করা, বিশেষ করে উচ্চ লোডের নিচে এটি কিভাবে কাজ করে।
- Security Testing: API নিরাপত্তা পরীক্ষা, যেমন API কী, অথেনটিকেশন এবং অথোরাইজেশন পরীক্ষা।
- Performance Testing: API এর সাড়া দেওয়ার গতি এবং সঠিকতা পরীক্ষা করা।
API Testing Tools:
- Postman: এটি সবচেয়ে জনপ্রিয় API Testing টুল, যা ডেভেলপার এবং টেস্টারদের API রিকোয়েস্ট পাঠাতে, রেসপন্স দেখতে এবং যাচাই করতে সহায়তা করে।
- Jest: Node.js এর জন্য একটি জনপ্রিয় টেস্টিং ফ্রেমওয়ার্ক যা API Testing এর জন্য ব্যবহৃত হতে পারে।
- Mocha: একটি JavaScript টেস্টিং ফ্রেমওয়ার্ক যা API Testing এর জন্য উপযুক্ত।
- Chai: একটি assertion লাইব্রেরি যা Mocha এর সাথে ব্যবহৃত হয় এবং API রেসপন্স চেক করতে সহায়তা করে।
Postman এ API Testing উদাহরণ:
- API রিকোয়েস্ট তৈরি করা:
- Postman দিয়ে
GET,POST,PUT,DELETEরিকোয়েস্ট তৈরি করা হয়। - রিকোয়েস্টের URL, প্যারামিটার, হেডার এবং বডি কনফিগার করা হয়।
- Postman দিয়ে
Response Validations:
- Status Code: 200, 201, 404 ইত্যাদি।
- Response Body: API রেসপন্সে থাকা ডাটা সঠিক কিনা তা যাচাই করা।
উদাহরণ:
pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); pm.test("Response contains 'user' key", function () { pm.response.to.have.jsonBody("user"); });
২. API Automation
API Automation হল এমন একটি প্রক্রিয়া যেখানে API Testing এর কাজ স্বয়ংক্রিয়ভাবে করা হয়। এর মাধ্যমে API গুলোর সঠিকতা এবং কর্মক্ষমতা পরীক্ষা করা হয় এবং সময় ও প্রচেষ্টা সাশ্রয় করা যায়। API Automation সাধারণত Continuous Integration/Continuous Deployment (CI/CD) সিস্টেমে ইনটিগ্রেট করা হয়।
API Automation Tools:
- Jest: Node.js এর জন্য অত্যন্ত জনপ্রিয় এবং সহজে API Testing Automation এর জন্য ব্যবহার করা যায়।
- Mocha + Chai: Mocha এবং Chai এর মাধ্যমে API Test Automation করা যায়।
- Supertest: Node.js এ API Testing করার জন্য একটি লাইব্রেরি যা HTTP Assertion প্রদান করে।
- Postman/Newman: Postman এর মাধ্যমে রিকোয়েস্ট তৈরি করে Newman ব্যবহার করে কমান্ড লাইনে API Testing Automation করা যায়।
Supertest এবং Mocha ব্যবহার করে API Automation উদাহরণ:
Supertest Setup:
প্রথমে, Supertest ইনস্টল করতে হবে:
npm install supertest --save-devMocha Setup:
Mocha ইনস্টল করতে হবে:
npm install mocha --save-devAPI Automation Test (Mocha + Supertest):
const request = require('supertest'); const app = require('./app'); // আপনার Express অ্যাপ্লিকেশন describe('GET /users', function() { it('should return all users', function(done) { request(app) .get('/api/users') .expect('Content-Type', /json/) .expect(200) .end(function(err, res) { if (err) return done(err); done(); }); }); });
এখানে:
request(app)দিয়ে আপনার Express অ্যাপ্লিকেশনকে টেস্ট করা হচ্ছে।.get('/api/users')দিয়ে API রিকোয়েস্ট পাঠানো হচ্ছে।.expect(200)দিয়ে HTTP স্ট্যাটাস কোড চেক করা হচ্ছে।.end()দিয়ে টেস্ট ফিনিশ করা হচ্ছে।
Running the Tests:
Mocha দিয়ে স্বয়ংক্রিয় টেস্ট চালানোর জন্য নিচের কমান্ড ব্যবহার করুন:
npx mocha
৩. Continuous Integration (CI) with API Testing
API Testing কে CI/CD pipeline এ ইন্টিগ্রেট করে অটোমেটেড টেস্টিং পরিচালনা করা হয়। এটি নিশ্চিত করে যে কোডের কোনো পরিবর্তন বা আপডেটের পর API সঠিকভাবে কাজ করছে।
Jest + GitHub Actions CI Example:
GitHub Actions Setup:
.github/workflows/test.ymlফাইলে CI/CD pipeline কনফিগার করা হয়।name: Node.js CI on: push: branches: [main] jobs: test: runs-on: ubuntu-latest strategy: matrix: node-version: [14, 16] steps: - name: Checkout repository uses: actions/checkout@v2 - name: Set up Node.js uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} - name: Install dependencies run: npm install - name: Run tests run: npm test
এখানে, GitHub Actions এর মাধ্যমে আপনার API Testing স্বয়ংক্রিয়ভাবে চালানো হচ্ছে, এবং যখনই কোড পরিবর্তন হবে, তখন টেস্ট রন হবে।
সারাংশ
- API Testing হল API এর কার্যকারিতা পরীক্ষা করার প্রক্রিয়া, যেখানে আপনি API রিকোয়েস্ট এবং রেসপন্স চেক করেন।
- Automation API Testing কে স্বয়ংক্রিয়ভাবে করার জন্য ব্যবহৃত হয়, যেমন Mocha, Jest, Supertest, Postman ইত্যাদি টুলস ব্যবহার করে।
- API Automation এবং CI/CD pipeline ব্যবহার করে টেস্টিং প্রক্রিয়াকে আরো কার্যকরী এবং দ্রুত করা হয়, যা সময় এবং প্রচেষ্টা সাশ্রয় করে।
Read more